#ifndef __BSP_PID__
#define __BSP_PID__

//#define USE_PID_INC       //增量式
//#define INC_EAZY          //简单增量式
#define USE_PID_POS       //位置式

typedef struct
{
    float Kp, Ki, Kd;       //三种系数
    float cur_err, pre_err; //当前错误和前一个错误
    #ifdef USE_PID_INC
        float pre2_err;     //前两个错误
    #endif
    #ifdef USE_PID_POS
        float locSum;       //累计积分值
    #endif
}pid_t;

int pid_init (pid_t *pid, float kp, float ki, float kd);
float pid_calculate (pid_t *pid, float SetValue, float ActualValue);

#endif
